package zx.lrn.notes.basic_data_type;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * @ClassName: BigNumber
 * @Description: JAVA中对大整型和超高精度浮点型的处理,对于大小超出long最大值和小数位数超过double精度的数字 JAVA提供了BigInteger和BigDecimal两个类处理，使用起来还是比较简单的。
 * @Author: zhaoxuan
 * @Date: 2020/2/22 13:01
 **/
public class BigNumber {
    public static void main(String[] args) {
        bigIntegerLrn();
    }

    /**
     * 列出了BigInteger的构造及加减乘除平方运算方法
     * BigDecimal和BigInteger的方法几乎平行
     */
    private static void bigIntegerLrn() {
        // 构造1：使用一个long型创建对应的BigInteger
        BigInteger bi1 = BigInteger.valueOf(1);
        // 构造2：对于太大的数，可以直接从字符串构建
        BigInteger bi2 = new BigInteger("12345678901234567890123456789012345678901234567890");
        // 加减乘除
        System.out.println(bi2.add(bi1));
        System.out.println(bi2.subtract(bi1));
        System.out.println(bi2.multiply(bi1));
        System.out.println(bi2.divide(bi1));
        // 乘方
        System.out.println(bi2.pow(2));
    }
}
